#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int QDataType;


typedef struct QueueNode
{
	struct QueueNode* _next;
	QDataType _data;
}QueueNode;

//头指针，尾指针
typedef struct Queue
{
	QueueNode* _head;
	QueueNode* _tail;
}Queue;

//接口

//初始化
void QueueInit(Queue* pq);
//销毁
void QueueDestory(Queue* pq);
//入队（尾入）
void QueuePush(Queue* pq, QDataType x);
//出队（头出）
void QueuePop(Queue* pq);
//取队头的数据
QDataType QueueFront(Queue* pq);
//取队尾的数据
QDataType QueueBack(Queue* pq);
//清空--返回1是空，返回0是非空
int QueueEmpty(Queue* pq);
//获取数据个数
int	QueueSize(Queue* pq);